package com.wms.service.impl;

import com.wms.entity.OrderReturn;
import com.wms.entity.OrderReturnDTO;
import com.wms.mapper.OrderReturnMapper;
import com.wms.service.OrderReturnService;
import com.wms.util.AliyunOSSUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Arrays;
import java.util.List;

/**
 * ---Do First---
 *
 * @author:wellseasun
 * @date:2025/4/29 下午 8:13
 * @desc:
 */
@Service
public class OrderReturnServiceImpl implements OrderReturnService {

    @Autowired
    private OrderReturnMapper orderReturnMapper;

    @Override
    public List<OrderReturn> findAllByPage(OrderReturnDTO orderReturnDTO) {
        return orderReturnMapper.findAllByPage(orderReturnDTO);
    }

    @Override
    public Boolean add(OrderReturn orderReturn) {
        String filePath = orderReturn.getGoodImageUrl();
        // 分割路径并获取最后两位
        List<String> pathSegments = Arrays.asList(filePath.split("/"));
        int size = pathSegments.size();
        // 安全获取最后两个元素（当元素不足两个时取全部）
        List<String> lastTwoSegments = pathSegments.subList(
                Math.max(size - 2, 0),  // 起始索引不小于0
                size
        );
        // 合并为字符串（可根据需要修改连接符）
        String result = String.join("/", lastTwoSegments);
        orderReturn.setGoodImageUrl(result);
        return orderReturnMapper.add(orderReturn);
    }

    @Override
    public Boolean deleteOrderPurchase(List<Integer> ids) {
        return orderReturnMapper.deleteOrderPurchase(ids);
    }

    @Override
    public Boolean updateOrderPurchase(OrderReturn orderReturn) {
        String filePath = orderReturn.getGoodImageUrl();
        orderReturn.setGoodImageUrl(convertImageUrl(filePath));
        return orderReturnMapper.updateOrderPurchase(orderReturn);
    }

    @Override
    public void upload(String filePath) {
        // 分割路径并获取最后两位
        List<String> pathSegments = Arrays.asList(filePath.split("/"));
        int size = pathSegments.size();

        // 安全获取最后两个元素（当元素不足两个时取全部）
        List<String> lastTwoSegments = pathSegments.subList(
                Math.max(size - 2, 0),  // 起始索引不小于0
                size
        );
        // 合并为字符串（可根据需要修改连接符）
        String result = String.join("/", lastTwoSegments);

        orderReturnMapper.upload(result);
    }

    @Override
    public void insertBatch(List<OrderReturn> cachedDataList) {
        orderReturnMapper.insertBatch(cachedDataList);
    }

    // 转换图片地址
    private String convertImageUrl(String filePath) {
        // 分割路径并获取最后两位
        List<String> pathSegments = Arrays.asList(filePath.split("/"));
        int size = pathSegments.size();
        // 安全获取最后两个元素（当元素不足两个时取全部）
        List<String> lastTwoSegments = pathSegments.subList(
                Math.max(size - 2, 0),  // 起始索引不小于0
                size
        );
        // 合并为字符串（可根据需要修改连接符）
        String result = String.join("/", lastTwoSegments);
        return result;
    }
}
